package com.shensi.adminCollect.mapper.station;

import com.shensi.adminCollect.domain.station.PayOrder;
import com.shensi.adminCollect.domain.station.StatisticsPayOrder;
import com.shensi.adminCollect.domain.station.form.PayOrderEmployeeQueryForm;
import com.shensi.adminCollect.domain.station.vo.PayOrderEmployeeQueryVo;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 订单支付Mapper接口
 *
 * @author qujia
 * @date 2020-12-10
 */
@Repository
public interface PayOrderHistoryMapper
{

    public int updatePayOrderByOrderNo(PayOrder payOrder);
    /**
     * 查询订单支付
     *
     * @param orderId 订单支付ID
     * @return 订单支付
     */
    public PayOrder selectPayOrderById(Long orderId);
    /**
     * 修改一段时间内的订单的金额
     *
     * @param paramMap 参数Map
     */
    void updatePayOrderAmt(Map<String, Object> paramMap);
    /**
     * 查询订单支付
     *
     * @param orderId 订单支付ID
     * @return 订单支付
     */
    public PayOrder selectPayOrderForFeiEById(Long orderId);

    /**
     * 查询订单支付列表
     *
     * @param payOrder 订单支付
     * @return 订单支付集合
     */
    public List<PayOrder> selectPayOrderList(PayOrder payOrder);

    public String selectPayOrderByOrderNo(PayOrder payOrder);
    /**
     * 查询所有订包括未支付的订单
     *
     * @param payOrder 订单支付
     * @return 订单支付集合
     */
    public List<PayOrder> selectAllPayOrderList(PayOrder payOrder);

    public PayOrder homePaymentSumQuery(PayOrder payOrder);



    /**
     * 新增订单支付
     *
     * @param payOrder 订单支付
     * @return 结果
     */
    public int insertPayOrder(PayOrder payOrder);

    /**
     * 修改订单支付
     *
     * @param payOrder 订单支付
     * @return 结果
     */
    public int updatePayOrder(PayOrder payOrder);



    /**
     * 查总数
     *
     *
     * @return 结果
     */
    public int countByStatus(PayOrder payOrder) ;
    /**
     * 删除订单支付
     *
     * @param orderId 订单支付ID
     * @return 结果
     */
    public int deletePayOrderById(Long orderId);

    /**
     * 批量删除订单支付
     *
     * @param orderIds 需要删除的数据ID
     * @return 结果
     */
    public int deletePayOrderByIds(Long[] orderIds);

    /**
     * 批量删除  逻辑删除
     * @param list
     * @return
     */
    public  int deletePay(List<Long> list);

    /**
     * 汇总今天销售金额，销售量
     * @param payOrder
     * @return
     */
    public PayOrder selectDaySources(PayOrder payOrder);

    /**
     * 汇总所有的订单信息
     * @param payOrder
     * @return
     */
    public PayOrder selectAllDaySources(PayOrder payOrder);

    /**
     * 根据油品分类获取数据
     * @param payOrder
     * @return
     */
    public  List<PayOrder> selectOilTypeSources(PayOrder payOrder);

    /**
     * 根据油品分类获取所有数据
     * @param payOrder
     * @return
     */
    public  List<PayOrder> selectAllOilTypeSources(PayOrder payOrder);

    /**
     * 收入概览
     * @param payOrder
     * @return
     */
    public PayOrder selectOverViewData(PayOrder payOrder);
    /**
     * 收入概览（包括退款的）
     * @param payOrder
     * @return
     */
    public PayOrder selectAllOverViewData(PayOrder payOrder);

    /**
     * 月报数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectDayReport(PayOrder payOrder);


    /**
     * 月报数据(包括已经退款的)
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectAllDayReport(PayOrder payOrder);

    /**
     * 日报折线图获取油品数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> listQydata(PayOrder payOrder);
    /**
     * 获取x轴数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> listXdata(PayOrder payOrder);
    /**
     * 查询导出信息
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectPayOrderExport(PayOrder payOrder);









    /**
     * 日报数据详情
     * @param payOrder
     * @return
     */
    public List<PayOrder> dayOilTypeSources(PayOrder payOrder);

    /**
     * 日报数据详情(包括已退款)
     * @param payOrder
     * @return
     */
    public List<PayOrder> dayAllOilTypeSources(PayOrder payOrder);

    /**
     * 用戶信息关联订单查询
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectUserPayOrderList(PayOrder payOrder);

    /**
     * 汇总订单统计信息
     * @param payOrder
     * @return
     */
    public PayOrder selectSumPayOrder(PayOrder payOrder);

    StatisticsPayOrder newSelectStatisticsPayOrderHistorySum(PayOrder payOrder);

    List<StatisticsPayOrder>  newSelectStatisticsPayOrderHistoryList(PayOrder payOrder);

    List<PayOrder> getOilSaleNumList(PayOrder payOrder);

    List<PayOrder> queryPayOrderHistoryList(PayOrder payOrder);

    PayOrderEmployeeQueryVo selectPayOrderEmployeeStatistics(PayOrderEmployeeQueryForm payOrderEmployeeQueryForm);
}
